package io.github.tesla.ops.utils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 日期处理
 */
public class DateUtils {
  /**
   * 时间格式(yyyy-MM-dd)
   */
  public final static String DATE_PATTERN = "yyyy-MM-dd";
  /**
   * 时间格式(yyyy-MM-dd HH:mm:ss)
   */
  public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";

  public static String format(Date date) {
    return format(date, DATE_PATTERN);
  }

  public static String format(Date date, String pattern) {
    if (date != null) {
      SimpleDateFormat df = new SimpleDateFormat(pattern);
      return df.format(date);
    }
    return null;
  }

  /**
   * 计算距离现在多久，非精确
   *
   * @param date
   * @return
   */
  public static String getTimeBefore(Date date) {
    Date now = new Date();
    long l = now.getTime() - date.getTime();
    long day = l / (24 * 60 * 60 * 1000);
    long hour = (l / (60 * 60 * 1000) - day * 24);
    long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60);
    long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
    String r = "";
    if (day > 0) {
      r += day + "天";
    } else if (hour > 0) {
      r += hour + "小时";
    } else if (min > 0) {
      r += min + "分";
    } else if (s > 0) {
      r += s + "秒";
    }
    r += "前";
    return r;
  }

  /**
   * 计算距离现在多久，精确
   *
   * @param date
   * @return
   */
  public static String getTimeBeforeAccurate(Date date) {
    Date now = new Date();
    long l = now.getTime() - date.getTime();
    long day = l / (24 * 60 * 60 * 1000);
    long hour = (l / (60 * 60 * 1000) - day * 24);
    long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60);
    long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
    String r = "";
    if (day > 0) {
      r += day + "天";
    }
    if (hour > 0) {
      r += hour + "小时";
    }
    if (min > 0) {
      r += min + "分";
    }
    if (s > 0) {
      r += s + "秒";
    }
    r += "前";
    return r;
  }
}
